home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 3.2 / Ham Radio Version 3.2 (Chestnut CD-ROMs)(1993).ISO / tcp / ax25 / ax25.doc < prev    next >
Text File  |  1992-04-22  |  7KB  |  151 lines

  1.                 AX25 driver for BAYCOM-like modem.
  2.         Beta version + minor corrections, 21th of April 1992
  3.  
  4.         Free license is granted for _amateur_ use only.
  5.  
  6.  
  7. AX25.COM is a packet driver comforming (to some extend) to well known
  8. "FTP packet driver" specification. It's purpose is to serve as interface
  9. between application software (e.g. KA9Q NOS) and a modem connected
  10. to RS232 port (e.g. BAYCOM modem).
  11.  
  12. The driver relies on the following RS232 pins:
  13. RTS - controls PTT: high level enables the transmitter
  14. DTR - transmitted data. On this pin the driver sends data
  15.       to be transmitted by the modem.
  16.       When in receive state this pin is held high.
  17. CTS - received data. The modem should supply here the data it receives.
  18. DCD - the modem may supply here "carrier detect" signal.
  19.       This pin is _optional_ - it is not a must because the driver
  20.       is able to deliver carrier signal from received data.
  21. GND - a common ground for the above signals.
  22.  
  23. TxD outputs a signal which is in high (positive voltage)
  24. most of the time. A low power modem (TCM3105) can be supplied
  25. from RTS+DTR+TxD (adding realized with diodes).
  26.  
  27. My primary intention while writting this driver was to provide
  28. opportunity to run KA9Q NOS with simple modems based on TCM3105
  29. or AM7910 chip. I tested the driver with NOS - no other software
  30. was available at the time. The driver can as well be examined
  31. by PKSTAT.COM and terminated (removed from memory) by TERMIN.COM.
  32. These two utilities are part of packet drivers package from Clarkson.
  33.  
  34. AX25 driver heavily relies on quick interrupt response.
  35. Thus the application software should avoid disabling
  36. CPU interrupts for long periods. Or say it in another words:
  37. enable interrupts whenever possible.
  38.  
  39. AX25.COM has several start-time options. To see them start it
  40. with "-?". If you start the driver without any command line
  41. switch it will use default values: COM1, 1200 baud, etc.
  42.  
  43. These are the options - default values are in []:
  44.  
  45. -b<bit rate> [1200] - decimal number
  46.     defines the bit rate. Rates below 300 are not accepted
  47.     because of PC's timer specific features.
  48.     I didn't put any upper limit here because it really depends on your CPU...
  49.     Please specify here rates which can be represent in form 14400/n
  50.     If you don't the driver will adjust the baud rate to match this condition.
  51.     Examples: 1800 = 14400/8, 1200 = 14400/12, 300 = 14400/48
  52.  
  53.  
  54. -i<software interrupt> [60] - hexadecimal number
  55.     Tells the driver which software interrupt to use
  56.     for control functions. Usually you would use numbers
  57.     from 60..63 here because these are intended for user applications.
  58.  
  59. -B<COM port I/O base> [3f8] - hexadecimal number
  60.    I/O address of RS232 port: 3f8 for COM1, 2f8 for COM2
  61.  
  62. -I<COM port IRQ> [4] - hexadecimal number
  63.    Interrupt request line of RS232 port: 4 for COM1, 3 for COM2
  64.    Only the range 2..7 is supported so far. I'm not even sure the irq 2
  65.    would work...
  66.  
  67. -s<slot time> [64] - decimal number
  68.    Slot time for p-persistance scheme. The value is in data bits.
  69.    For 1200 baud, slot time 120 bits means 100 ms.
  70.  
  71. -p<persistance> [20] - decimal number 0..255
  72.    p-persistance - the higher the value the higher the probability
  73.    of activating PTT at each time slot.
  74.    
  75.    Your station becomes more "agressive" on the air with
  76.    increasing persistance and decreasing slot time.
  77.  
  78. -h<tx header length> [500] - decimal number 8..65535
  79.    Number of extra bits the transmitter sends before actuall data
  80.    is transmitted.
  81.    
  82.    You should always make this number as small as possible
  83.    for best bandwidth use. 500 tells you basicaly that 500 _useless_
  84.    bits (60 bytes) are being transmitted before real packet data goes in.
  85.    
  86.    Unlike most TNCs this driver sends a square wave not a series
  87.    of HDLC flags in front of a packet. This was easier to program
  88.    in software and it makes DPLL lock faster at receiving end.
  89.    Thus less header bits should be needed...
  90.    
  91. -t<tx tail length> [16] - decimal number 8..65535
  92.    Number of extra bits the transmitter sends _after_ the actuall data.
  93.  
  94. -c<carrier sense mode> [t] - one of the following letters: f,c,t,d
  95.    mode      meaning           
  96.     f      full duplex - transmit whenever data is pending
  97.     c      sense modem DCD line to find out whether channel is busy.
  98.            Your modem hes to supply this signal. Note that TCM3105
  99.            does not do it very well... it sets DCD to high on any noise
  100.            on audio input.
  101.     t      sense data transition - if incoming data signal moves
  102.            the driver assumes that the channel is busy - BAYCOM uses
  103.            the same (or very similar) way up to version 1.4
  104.     d      deliver "channel busy" status by analysing incoming data.
  105.            BAYCOM v1.5 does effectively similar thing although
  106.            it uses different algorithm.
  107.            With this mode you may run your radio with squelch open
  108.            all the time.
  109.  
  110. Please note that argument line is case sensitive and so are hexadecimal
  111. values... "2F8" will not do - you must specify "2f8".
  112.  
  113. Getting started quickly:
  114.  
  115. 1. Start the ax25.com - most important parameters are COM base and irq.
  116.    e.g. for COM1: ax25 -B3f8 -I4
  117. 2. Start KA9Q NOS.
  118.    type in:
  119.      attach packet 0x60 ax25 5 512
  120.      trace ax25 111
  121.    you should see packets being received now...
  122. 3. Try to connect to another station by typing:
  123.    connect ax25 <callsign>
  124.  
  125. If you realized that you started ax25.com with not the parameters
  126. you liked use termin.com to terminate the driver (e.g. termin 0x60)
  127. and start ax25.com again with another option set.
  128.  
  129. How big packets can ax25 driver handle ?
  130. The receiver can handle 1024 byte (including CRC) frames.
  131. For the transmitter this parameter is not well defined
  132. because it's buffer stores periods between data transitions
  133. not the bytes directly. For worst case packet containing
  134. all zeros the limit is 1020 bytes (for best case it is 6K).
  135. If there are requests for larger buffers I can make them
  136. straight away but then more resident memory will be occupied
  137. by the driver. Now it needs about 12K - for buffers twice
  138. as big it would need 9K more.
  139.  
  140. Have fun and _please_ send comments/hints/complaints to:
  141.  
  142.                         jalocha@chopin.ifj.edu.pl
  143.                     or  jalocha@vxcern.cern.ch
  144.                     or  jalocha@priam.cern.ch
  145.  
  146.  
  147.                 Pawel Jalocha
  148.                 Rynek Kleparski 14/4a
  149.                 PL-31150 KRAKOW (Poland)
  150.  
  151.